/*
package com.tedu.api;

import org.testng.annotations.Test;

import java.util.Scanner;

*/
/**
 * JavaSE:基础语法，Javaoop面向对象，JavaAPI（帮助文档，理解：字典）
 *
 * JavaAPI【内置：java编辑好的】提供大量类，接口，抽象类，异常，错误
 * 预计提供好的类库:8000，JvavAPI只学重点
 *
 * JavaAPI：字符串，包装类，集合【泛型】，线程多线程【并发--大数据】，IO流，socket套接字【网络编程】
 *
 * jdk1.8.chm帮助文档  理解：    新华字典   会查类，接口，抽象。。使用
 * JDK版本---帮助文档  根据
 * 必须会查API       String类--什么包下？
 *                 java.lang[moren
 *  java：错误：无效
 *
 *
 * jdk1.8   StringAPI类库：构造器怎么用，方法怎么用？
 *//*


public class StringAPL {
    */
/**
     * jdk1.8   StringAPI类库：构造器怎么用，方法怎么用？
     * 包位置：java。lang【不需要到爆：System，String，
     * tedian：不需要导入包，不可以继承，字符数组，定义完毕对象无法
     * 修改可以覆盖，String类是final，java字符串编码集
     * 顶级UniCode：GBK，UTF-8： 任何字符对应两个字节
     * 字符串底层：封装了字符数组及针对字符数组的操作算法
     * 字符数组==zifuchuan
     *
     *
     * 定义：String 身体乳=“直接量”    给定值
     *
     *//*

    @Test
    public void testString(){
        //System.out.println("Hello World" );
        String str="字符串";
        System.out.println(str);
        char[] c={'字','符','串'};
        System.out.println("c");
        //字符串创建出来，无法修改，因为String是final修饰
        String s="hello world";
        s="123";    //对对象进行覆盖
        System.out.println("s");

    }
    */
/**
     * 定义给定值的方式     String string=“java123
     * java为了提高性能，针对静态字符串
     *静态字符串（字面量常量链接后结果）
     * 创建在String常量池中，对于从于创建静态字符串，JVM虚拟机首先
     *
     * JVM会在虚拟机的堆内存中开辟一块空间保存曾经是用过的字面量、常量
     * 一旦后期又实用曾经的字面量不会创建新对象，直接使用老对象
     * String常量池
     * 好处：减少内存开销，提高性能
     *//*

    @Test
    public void testStrings(){

        String s1="java123";  //公共常量池
        String s2="java123";  //不会创建对象，从常量池java123
        System.out.println(s1==s2);//true
        String s="java123";//s3对象=是对象+”123“；
        String s3= s+"123";  //s对象  不可修改



        System.out.println(s1==s3);
        String s4="java"+"123";
        System.out.println(s2==s4);
        //s2的java123从常量池中过去s4拼接后静态字符串从常量池中获取
        //上面的代码：给定值定义字符串方式，拥有常量池
        //下面的代码：创建字符串对象方式
        String s5=new String("java123");
        System.out.println(s4==s5);


    }
    */
/**
     * String APL    方法
     * 方法    返回值：int
     * 作用：返回当前字符串的长度（个数）--借鉴于数组
     * :字符串包含：特殊字符空格，字母，汉字
     * string对象采用
     *//*

    @Test
    public  void testlenght(){
        String str="HELLO WORD";
        System.out.println(str.length());
        str=" 我爱java";
        System.out.println(str.length());
    }
    */
/**
     * indexOF 方法---  重载功能：修饰符  返回值   方法名  一致
     *                                           参数不一致
     * indeox（int intdex）
     * 第一个参数String indeox：传入下标位
     * 作用：查找指定字符串中位置，首位置
     * 如果匹配到对应字符。输出位置下标
     * 如果没有匹配对应字符 返回 -1值
     indexOf（String 身体乳，int index）  返回值  int
     第一个参数：String str；传入指定字符串
     第二个参数：int index：查找指定具体位置的下标
     作用：查找具体下标位的字符串在当前字符串中位置，首位置
     如果查找相同,名称向下查找：不包含当前位置
     如果没有匹配相应字符-：返回值-1
     lostIndexOf(String str)
     作用：找到匹配字符串
     *//*

    @Test
    public void testIndexOf(){
        String str="thing in java";
        //java编程思想【第四版】
        //返回值  下标位
        int index=str.indexOf("in");
        System.out.println("打印下标位："+index);
       index=str.indexOf("in",3);
       System.out.println("指定下标位"+index);
       index=str.lastIndexOf("in");
       System.out.println("最后下标位："+index);


    }
    */
/**
     * StringAPI针对字符串提供三中方法：截取  替换  分割【常用方法】
     * subString方法     截取  返回值：string
     * substring（intstar，int end）
     * 作用：截取字符串，从下标start位置开始截取，截取到end下标位置
     * srbString（int index）
     * 作用:截取字符串，从下标index位置开始截取，截取到最后
     *
     *//*


    @Test
    public void testSubString(){
        String url="www.baidu.com";//
//        url=url.substring(4,9);//
        System.out.println("截取字符串："+url);
        url=url.substring(9);
        System.out.println("截取字符串："+url);
    }

    */
/**
     *     charAt方法    返回值char
     *     作用：返回当前字符串中指定位置的字符
     *     StringIndexOutOfBoundsException 异常
     *     字符串下标越界问题  出现原因：下标超出范围
     *//*

   @Test
    public void testCharAt(){
        String str="每当想起你时";
        char c=str.charAt(1);
       System.out.println("获取到对应字符："+c);
   }

*/
/**
 * trim方法  返回值：String
 * 作用：去掉当前字符串前后空格【转大小写叠加使用】
 * 统一转换大小写
 *
 * toLowerCase方法   返回值String
 * 作用：将字符串中所有字符转换为小写
 * toUpperCase方法   返回值：String
 * 作用：将字符串中所有字符转换为大写
 * 验证码：xD4e   前台显示：xD4e  用户输入：xd4e
 *//*

@Test
    public void testTrim(){

        String str=" xD4e ";//后台出入前后都加空格，xD4e判断
        //后台传入前台字符串----一律空
        str=str.trim().toUpperCase();
        System.out.println("去掉空格："+str);


}
*/
/**
 * [PHP-前端]正则表达式：语法-元字符   ^【0-9】*$
 * 验证字符串
 * matches方法
 * 作用：用于验证字符串，使用正则表达式进行验证【锅炉字符】
 * 返回ture正则验证成功  反之则失败
 *
 *//*

public static void main(String[] args){
    String regex="^([0-9]){7,18}(x|X)?$ ";
    System.out.println("请输入");

    Scanner input=new Scanner(System.in);

    if(input.nextLine().matches(regex)){
        System.out.println("是身份证号");



    }else {
        System.out.println("不是身份证号");
    }
}
*/
/**
 * replace方法   替换     返回值：String
 * replace(String a,String b)
 * 第一个参数 String a 传入替换字符
 * 第二个参数 String b 传入查找字符
 * 作用;用于匹配字符串中存在字符，匹配成功，替换成新字符
 *//*

@Test
    public void testReplace(){
    String str="我爱java";
    str=str.replace("Java","Python");
    System.out.println("替换后的字符串"+str);
    String rex="^([0-9]){7,18}(x|X)?$ ";
    String say="我去年买了块表";
    String regex="";
    say=say.replaceAll(regex,"");
    System.out.println("通过正则替换过的字符串"+say);
}

*/
/**
 * split方法    分割   返回值：String【】
 * 作用用于按照正则或者字符串的方式分割字符串
 * www.baidu.com   按照。的方式获取
 * Split写，  代表正则表达式：。匹配一个字符
 * split写，注意：转义成
 *
 *//*

*/
/*@Test
    public void testSplit(){
    String url="www.baidu.com";
    String[] urls=url.split("\\.");
}
    for(String s:urls){
    System.out.println("分割后元素值"+s);
    }*//*

    */
/**
     * valueOf()     jingtaifangf：通过类名访问   返回值：String
     * 作用：基础数据类型转换为字符串
     *
     *//*


    @Test
    public void testValueOf(){
        int i=123;
        String s=String.valueOf(i);
        if(s.equals("123")){
            System.out.println("是字符串");
        }else{
            System.out.println("不是字符串");
        }
    }
}


































*/
